針對昨天的主題
今天再多整理其他內容
主要的功用是用來協助處裡Session的狀態
而在Servlet API提供了幾個方式來針對cookie去做其他的處理
Cookie mycookie = new Cookie("myName",name);
mycookie.sertMaxAge(30*60)
//單位為秒數所以*60表示分鐘
//setMaxSge(-1)表示瀏覽器關閉cookie就消失
Cookie[] arraycookies = request.getCookies();
for(int i =0;i<arraycookies.length;i++)
{
Cookie myNowCookie = arraycookies[i];
if(myNowCookie.getName().equals("myName"))
{
//取得我們要的cookie的值
String myName = myNowCookie.getValue();
break;
}
}
Cookie mycookie = new Cookie("myName",name);
response.addCookie(mycookie);//沒有setCookie()這個method
和週期有關HttpSessionListener
事件類型:HttpSessionEvent
用途:
Session健立即被銷毀時
和屬性有關的HttpSessionAttributesListener
事件類型:HttpSessionBindingEvent
用途:
新增setAttribute()
移除removeAttribute()
update在既有的屬性在執行setAttribute()
其中這是類型還有另一個HttpSessionBindingListener屬性
用來記錄session被bind以及被解開的狀態
這個屬性是不需要被設定在DD裡面
和遷移有關的HttpSessionActivationListener
事件類型:HttpSessionEvent
用途:
session 即將被passivated
session 被activated
這個屬性也不需要被設定在DD裡面
現在的系統大多使用Load Balancing
HttpSessionActivationListener就是在處理
當一個VM遷移到另一個VM的狀況
儘管在Load Balancing去處理要到哪一台VM
但WEV application每個SessionID仍是唯一的
因此兩次request分別被load Balacning到不同的VM
Container會找到一次的VM的sessionID
透過HttpSessionActivationListener提供的方法:
sessionWillPassivate() & sessionDidActivate()
將前一個session完整個遷移到新的VM(即第二次request所執行的VM)
今天針對session稍做了整理
接下來會來練習一個小範例
再來接著JSP的部分